import antfu from '@antfu/eslint-config'
import oxlint from 'eslint-plugin-oxlint'

export default antfu({
  formatters: true,
  typescript: true,
  vue: true,
  jsonc: true,
  stylistic: true,
  pnpm: true,
  ignores: [
    '.vscode',
    '**/node_modules/**',
    '**/dist/**',
    'pnpm-lock.yaml',
    'docs/.vitepress/cache/**',
  ],
  rules: {
    // 关闭列表换行规则
    'antfu/consistent-list-newline': 'off',

    // 关闭 process 使用规则
    'node/prefer-global/process': 'off',

    'no-console': 'off',

    // 允许使用 Function 类型
    'ts/no-unsafe-function-type': 'off',
    'ts/no-empty-object-type': 'off',

    // 关闭 vue 的 template script style 块顺序规则
    'vue/block-order': 'off',
    // 组件名称必须使用大驼峰，忽略icon-开头的组件
    'vue/component-name-in-template-casing': ['error', 'PascalCase', {
      registeredComponentsOnly: false,
      ignores: ['/^icon-/'],
    }],
    // 允许事件名称为短横线命名
    'vue/custom-event-name-casing': 'off',

    // 取消jsx强制换行
    'style/jsx-one-expression-per-line': 'off',
    // 允许多行三元运算符
    'style/multiline-ternary': 'off',

    'pnpm/json-enforce-catalog': 'off',
  },
}, oxlint.configs['flat/recommended'])
